#pragma once

#ifndef FOLLOWSHANDLE_H
#define FOLLOWSHANDLE_H

#include "PKB.h"
#include "spa_types.h"
#include <vector>
#include <algorithm>
#include <iterator>

using namespace std;
class PKB;

class FollowsHandle
{
	
private: 
	PKB* pkb;
	FollowsHandle(void);
	~FollowsHandle(void);

public:

	// Follows*(s1,s2)
	std::vector<std::vector<INTEGER>> RetrieveTransitiveFollows(std::vector<INTEGER> previous_in, std::vector<INTEGER> following_in);

	// Follows(s1,s2)
	std::vector<std::vector<INTEGER>> RetrieveFollows(std::vector<INTEGER> previous_in, std::vector<INTEGER> following_in);
};

#endif